const l=()=>new Request("/stay-signed-in",{mode:"no-cors"}),c=t=>(window.location.pathname.startsWith("/view")?"/view":"")+t,w=()=>c("/user-sign-out"),f=()=>c("/auto-sign-out"),v=t=>{let n=t<60?"seconds":"minutes";const e=t<60?t:Math.floor(t/60);return n==="minutes"&&e.toString()==="1"?n="minute":n==="seconds"&&e.toString()==="1"&&(n="second"),`${e} ${n}`},h=t=>{const n=new Date;return n.setSeconds(n.getSeconds()+t),n.getTime()},E=t=>Math.round(t/1e3),o=()=>document.getElementById("timeout-warning-dialog"),y=new CustomEvent("session-timeout-start",{}),I=new CustomEvent("session-stay-signed-in",{}),u=t=>{document.getElementById("count-down").innerHTML=v(t)},T=()=>{document.getElementById("signout-btn").setAttribute("href",w())},b=(t,n)=>{document.getElementById("stay-signed-in").addEventListener("click",i=>{fetch(l()),clearInterval(t.interval),C(),o().close(),o().dispatchEvent(I),m(n)})},d=t=>{t.code==="Escape"&&t.preventDefault()},C=()=>{o().close(),document.removeEventListener("keydown",d)},p=()=>{o().showModal(),document.addEventListener("keydown",d)},g=(t,n,e,i=0)=>{const s=h(n);u(n+i);const a=setInterval(()=>{const r=s-Date.now();r<=0?(clearInterval(a),e()):u(E(r)+i)},t*1e3,s,e,i);return a},S=(t,n)=>{const e=g(n.interval,n.offset,()=>window.location.href=f());t.interval=e},D=(t,n)=>{const e=g(n.warningTimeout.interval,n.warningTimeout.offset-n.finalCountDownTimeout.offset,()=>S(t,n.finalCountDownTimeout),n.finalCountDownTimeout.offset);t.interval=e},B=t=>{const n={interval:0};D(n,t),b(n,t),p(),o().dispatchEvent(y)},m=t=>{T(),setTimeout(()=>B(t),(t.sessionMaxTime-t.warningTimeout.offset)*1e3)},M=new Set(["/auto-sign-out","/user-sign-out","/view/auto-sign-out","/view/user-sign-out","/leave","/error"]),A={sessionMaxTime:Number(document.head.getAttribute("data-session-timeout-seconds")),warningTimeout:{offset:Number(document.head.getAttribute("data-session-warning-timeout-offset-seconds")),interval:Number(document.head.getAttribute("data-session-warning-time-interval-seconds"))},finalCountDownTimeout:{offset:Number(document.head.getAttribute("data-session-final-count-down-timeout-offset-seconds")),interval:Number(document.head.getAttribute("data-session-final-count-down-time-interval-seconds"))}};window.document.addEventListener("DOMContentLoaded",()=>{M.has(window.location.pathname)||m(A)});